package com.achen.elasticsearch.dao;

import com.achen.elasticsearch.entity.Product;

import java.util.List;

/**
 * 自定义查询
 *
 * @author achen
 * @create 2020-04-29 21:38
 */
public interface CustomerProductRepository {
    //使用term查询
    List<Product> findContentTermQuery(String contentkeyword);

    //使用term查询，返回指定字段
    List<Product> findContentTermQuerySourceField(String contentkeyword, String... str);

    //使用term查询，返回指定字段同时分页查询
    List<Product> findContentTermQuerySourceFieldPageable(Integer page, Integer size, String contentkeyword, String... str);

    //使用term查询返回指定字段同时分页查询并且根据指定字段排序
    List<Product> findContentTermQuerySourceFieldPageableSort(String sortField, Integer page, Integer size, String contentkeyword, String... str);

    //使用过滤条件进行过滤，并使用term查询返回指定字段同时分页查询并且根据指定字段排序
    List<Product> findContentTermQuerySourceFieldPageableSortFilter(String filterField, String filterkeyword, String sortField, Integer page, Integer size, String contentkeyword, String... str);

    //使用过滤条件过滤价格在<=100的范围内，并且使用多字段查询，最后对查询结果分页、排序、高亮，并返回指定字段
    List<Product> findProductHeight(String querykeyword,Integer page,Integer size,String...str);

}
